package digitrencer;


//commented by Gergő
/**
 * Az invertert megvalósító osztály.
 * @author Ezt ki írta meg?
 */
public class Inverter extends Gate {

        /**
         * Inverter osztály konstruktora.
         * Meghívja a Gate konstruktorát, majd
         * ellenőrzi, hogy a bemeneti illetve a kimeneti vezetékek száma 1-e.
         * Amennyiben nem, hibát dob, mivel az Inverter osztály tagjainak csak
         * egy bemenete, illetve kimenete lehet.
         * @param inputs    Bemeneti vezetékek
         * @param outputs   Kimeneti vezetékek
         * @throws IllegalArgumentException Amennyiben nem csak egy bemenetet és
         * egy kimenetet adtunk meg.
         */
        Inverter(Wire[] inputs, Wire[] outputs) throws IllegalArgumentException{
            super(inputs,outputs);
            if (inputs.length != 1 || outputs.length != 1)
                throw new IllegalArgumentException("An inverter must have exactly one input and output wire");
        }

         /**
         * Az Inverter osztály futási metódusa. A kimenet értékét beállítja a hozzá
         * csatlakozó vezeték végén lévő érték inverzére.
         */
    @Override
	public void run() {
            out[0].setStart(!in[0].getEnd());
	}
}